home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / macos / cpu68000.cpt.hqx / CPU68000 / CPU / cpuD.c < prev    next >
C/C++ Source or Header  |  1997-06-16  |  45KB  |  1,290 lines

  1. #include "sysconfig.h"
  2. #include "sysdeps.h"
  3. #include "config.h"
  4. #include "options.h"
  5. #include "machdep/m68k.h"
  6. #include "my_memory.h"
  7. #include "custom.h"
  8. #include "readcpu.h"
  9. #include "newcpu.h"
  10. #include "compiler.h"
  11. #include "cputbl.h"
  12. #if !defined (MEMFUNCS_DIRECT_REQUESTED) || defined (DIRECT_MEMFUNCS_SUCCESSFUL)
  13. void REGPARAM2 CPU_OP_NAME(_d000)(uae_u32 opcode) /* ADD */
  14. {
  15.     uae_u32 srcreg = (opcode & 7);
  16.     uae_u32 dstreg = (opcode >> 9) & 7;
  17. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  18. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  19. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  20. {    int flgs = ((uae_s8)(src)) < 0;
  21.     int flgo = ((uae_s8)(dst)) < 0;
  22.     int flgn = ((uae_s8)(newv)) < 0;
  23.     ZFLG = ((uae_s8)(newv)) == 0;
  24.     VFLG = (flgs == flgo) && (flgn != flgo);
  25.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  26.     NFLG = flgn != 0;
  27.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  28. }}}}}}}
  29. void REGPARAM2 CPU_OP_NAME(_d010)(uae_u32 opcode) /* ADD */
  30. {
  31.     uae_u32 srcreg = (opcode & 7);
  32.     uae_u32 dstreg = (opcode >> 9) & 7;
  33. {{    uaecptr srca = m68k_areg(regs, srcreg);
  34.     uae_s8 src = get_byte(srca);
  35. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  36. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  37. {    int flgs = ((uae_s8)(src)) < 0;
  38.     int flgo = ((uae_s8)(dst)) < 0;
  39.     int flgn = ((uae_s8)(newv)) < 0;
  40.     ZFLG = ((uae_s8)(newv)) == 0;
  41.     VFLG = (flgs == flgo) && (flgn != flgo);
  42.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  43.     NFLG = flgn != 0;
  44.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  45. }}}}}}}
  46. void REGPARAM2 CPU_OP_NAME(_d018)(uae_u32 opcode) /* ADD */
  47. {
  48.     uae_u32 srcreg = (opcode & 7);
  49.     uae_u32 dstreg = (opcode >> 9) & 7;
  50. {{    uaecptr srca = m68k_areg(regs, srcreg);
  51.     uae_s8 src = get_byte(srca);
  52. {    m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
  53. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  54. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  55. {    int flgs = ((uae_s8)(src)) < 0;
  56.     int flgo = ((uae_s8)(dst)) < 0;
  57.     int flgn = ((uae_s8)(newv)) < 0;
  58.     ZFLG = ((uae_s8)(newv)) == 0;
  59.     VFLG = (flgs == flgo) && (flgn != flgo);
  60.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  61.     NFLG = flgn != 0;
  62.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  63. }}}}}}}}
  64. void REGPARAM2 CPU_OP_NAME(_d020)(uae_u32 opcode) /* ADD */
  65. {
  66.     uae_u32 srcreg = (opcode & 7);
  67.     uae_u32 dstreg = (opcode >> 9) & 7;
  68. {{    m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
  69. {    uaecptr srca = m68k_areg(regs, srcreg);
  70.     uae_s8 src = get_byte(srca);
  71. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  72. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  73. {    int flgs = ((uae_s8)(src)) < 0;
  74.     int flgo = ((uae_s8)(dst)) < 0;
  75.     int flgn = ((uae_s8)(newv)) < 0;
  76.     ZFLG = ((uae_s8)(newv)) == 0;
  77.     VFLG = (flgs == flgo) && (flgn != flgo);
  78.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  79.     NFLG = flgn != 0;
  80.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  81. }}}}}}}}
  82. void REGPARAM2 CPU_OP_NAME(_d028)(uae_u32 opcode) /* ADD */
  83. {
  84.     uae_u32 srcreg = (opcode & 7);
  85.     uae_u32 dstreg = (opcode >> 9) & 7;
  86. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  87.     uae_s8 src = get_byte(srca);
  88. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  89. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  90. {    int flgs = ((uae_s8)(src)) < 0;
  91.     int flgo = ((uae_s8)(dst)) < 0;
  92.     int flgn = ((uae_s8)(newv)) < 0;
  93.     ZFLG = ((uae_s8)(newv)) == 0;
  94.     VFLG = (flgs == flgo) && (flgn != flgo);
  95.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  96.     NFLG = flgn != 0;
  97.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  98. }}}}}}}
  99. void REGPARAM2 CPU_OP_NAME(_d030)(uae_u32 opcode) /* ADD */
  100. {
  101.     uae_u32 srcreg = (opcode & 7);
  102.     uae_u32 dstreg = (opcode >> 9) & 7;
  103. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  104. {    uae_s8 src = get_byte(srca);
  105. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  106. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  107. {    int flgs = ((uae_s8)(src)) < 0;
  108.     int flgo = ((uae_s8)(dst)) < 0;
  109.     int flgn = ((uae_s8)(newv)) < 0;
  110.     ZFLG = ((uae_s8)(newv)) == 0;
  111.     VFLG = (flgs == flgo) && (flgn != flgo);
  112.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  113.     NFLG = flgn != 0;
  114.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  115. }}}}}}}}
  116. void REGPARAM2 CPU_OP_NAME(_d038)(uae_u32 opcode) /* ADD */
  117. {
  118.     uae_u32 dstreg = (opcode >> 9) & 7;
  119. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  120.     uae_s8 src = get_byte(srca);
  121. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  122. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  123. {    int flgs = ((uae_s8)(src)) < 0;
  124.     int flgo = ((uae_s8)(dst)) < 0;
  125.     int flgn = ((uae_s8)(newv)) < 0;
  126.     ZFLG = ((uae_s8)(newv)) == 0;
  127.     VFLG = (flgs == flgo) && (flgn != flgo);
  128.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  129.     NFLG = flgn != 0;
  130.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  131. }}}}}}}
  132. void REGPARAM2 CPU_OP_NAME(_d039)(uae_u32 opcode) /* ADD */
  133. {
  134.     uae_u32 dstreg = (opcode >> 9) & 7;
  135. {{    uaecptr srca = nextilong();
  136.     uae_s8 src = get_byte(srca);
  137. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  138. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  139. {    int flgs = ((uae_s8)(src)) < 0;
  140.     int flgo = ((uae_s8)(dst)) < 0;
  141.     int flgn = ((uae_s8)(newv)) < 0;
  142.     ZFLG = ((uae_s8)(newv)) == 0;
  143.     VFLG = (flgs == flgo) && (flgn != flgo);
  144.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  145.     NFLG = flgn != 0;
  146.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  147. }}}}}}}
  148. void REGPARAM2 CPU_OP_NAME(_d03a)(uae_u32 opcode) /* ADD */
  149. {
  150.     uae_u32 dstreg = (opcode >> 9) & 7;
  151. {{    uaecptr srca = m68k_getpc();
  152.     srca += (uae_s32)(uae_s16)nextiword();
  153. {    uae_s8 src = get_byte(srca);
  154. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  155. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  156. {    int flgs = ((uae_s8)(src)) < 0;
  157.     int flgo = ((uae_s8)(dst)) < 0;
  158.     int flgn = ((uae_s8)(newv)) < 0;
  159.     ZFLG = ((uae_s8)(newv)) == 0;
  160.     VFLG = (flgs == flgo) && (flgn != flgo);
  161.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  162.     NFLG = flgn != 0;
  163.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  164. }}}}}}}}
  165. void REGPARAM2 CPU_OP_NAME(_d03b)(uae_u32 opcode) /* ADD */
  166. {
  167.     uae_u32 dstreg = (opcode >> 9) & 7;
  168. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  169. {    uae_s8 src = get_byte(srca);
  170. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  171. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  172. {    int flgs = ((uae_s8)(src)) < 0;
  173.     int flgo = ((uae_s8)(dst)) < 0;
  174.     int flgn = ((uae_s8)(newv)) < 0;
  175.     ZFLG = ((uae_s8)(newv)) == 0;
  176.     VFLG = (flgs == flgo) && (flgn != flgo);
  177.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  178.     NFLG = flgn != 0;
  179.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  180. }}}}}}}}
  181. void REGPARAM2 CPU_OP_NAME(_d03c)(uae_u32 opcode) /* ADD */
  182. {
  183.     uae_u32 dstreg = (opcode >> 9) & 7;
  184. {{    uae_s8 src = nextibyte();
  185. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  186. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  187. {    int flgs = ((uae_s8)(src)) < 0;
  188.     int flgo = ((uae_s8)(dst)) < 0;
  189.     int flgn = ((uae_s8)(newv)) < 0;
  190.     ZFLG = ((uae_s8)(newv)) == 0;
  191.     VFLG = (flgs == flgo) && (flgn != flgo);
  192.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  193.     NFLG = flgn != 0;
  194.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  195. }}}}}}}
  196. void REGPARAM2 CPU_OP_NAME(_d040)(uae_u32 opcode) /* ADD */
  197. {
  198.     uae_u32 srcreg = (opcode & 7);
  199.     uae_u32 dstreg = (opcode >> 9) & 7;
  200. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  201. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  202. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  203. {    int flgs = ((uae_s16)(src)) < 0;
  204.     int flgo = ((uae_s16)(dst)) < 0;
  205.     int flgn = ((uae_s16)(newv)) < 0;
  206.     ZFLG = ((uae_s16)(newv)) == 0;
  207.     VFLG = (flgs == flgo) && (flgn != flgo);
  208.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  209.     NFLG = flgn != 0;
  210.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  211. }}}}}}}
  212. void REGPARAM2 CPU_OP_NAME(_d048)(uae_u32 opcode) /* ADD */
  213. {
  214.     uae_u32 srcreg = (opcode & 7);
  215.     uae_u32 dstreg = (opcode >> 9) & 7;
  216. {{    uae_s16 src = m68k_areg(regs, srcreg);
  217. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  218. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  219. {    int flgs = ((uae_s16)(src)) < 0;
  220.     int flgo = ((uae_s16)(dst)) < 0;
  221.     int flgn = ((uae_s16)(newv)) < 0;
  222.     ZFLG = ((uae_s16)(newv)) == 0;
  223.     VFLG = (flgs == flgo) && (flgn != flgo);
  224.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  225.     NFLG = flgn != 0;
  226.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  227. }}}}}}}
  228. void REGPARAM2 CPU_OP_NAME(_d050)(uae_u32 opcode) /* ADD */
  229. {
  230.     uae_u32 srcreg = (opcode & 7);
  231.     uae_u32 dstreg = (opcode >> 9) & 7;
  232. {{    uaecptr srca = m68k_areg(regs, srcreg);
  233.     uae_s16 src = get_word(srca);
  234. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  235. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  236. {    int flgs = ((uae_s16)(src)) < 0;
  237.     int flgo = ((uae_s16)(dst)) < 0;
  238.     int flgn = ((uae_s16)(newv)) < 0;
  239.     ZFLG = ((uae_s16)(newv)) == 0;
  240.     VFLG = (flgs == flgo) && (flgn != flgo);
  241.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  242.     NFLG = flgn != 0;
  243.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  244. }}}}}}}
  245. void REGPARAM2 CPU_OP_NAME(_d058)(uae_u32 opcode) /* ADD */
  246. {
  247.     uae_u32 srcreg = (opcode & 7);
  248.     uae_u32 dstreg = (opcode >> 9) & 7;
  249. {{    uaecptr srca = m68k_areg(regs, srcreg);
  250.     uae_s16 src = get_word(srca);
  251. {    m68k_areg(regs, srcreg) += 2;
  252. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  253. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  254. {    int flgs = ((uae_s16)(src)) < 0;
  255.     int flgo = ((uae_s16)(dst)) < 0;
  256.     int flgn = ((uae_s16)(newv)) < 0;
  257.     ZFLG = ((uae_s16)(newv)) == 0;
  258.     VFLG = (flgs == flgo) && (flgn != flgo);
  259.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  260.     NFLG = flgn != 0;
  261.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  262. }}}}}}}}
  263. void REGPARAM2 CPU_OP_NAME(_d060)(uae_u32 opcode) /* ADD */
  264. {
  265.     uae_u32 srcreg = (opcode & 7);
  266.     uae_u32 dstreg = (opcode >> 9) & 7;
  267. {{    m68k_areg(regs, srcreg) -= 2;
  268. {    uaecptr srca = m68k_areg(regs, srcreg);
  269.     uae_s16 src = get_word(srca);
  270. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  271. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  272. {    int flgs = ((uae_s16)(src)) < 0;
  273.     int flgo = ((uae_s16)(dst)) < 0;
  274.     int flgn = ((uae_s16)(newv)) < 0;
  275.     ZFLG = ((uae_s16)(newv)) == 0;
  276.     VFLG = (flgs == flgo) && (flgn != flgo);
  277.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  278.     NFLG = flgn != 0;
  279.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  280. }}}}}}}}
  281. void REGPARAM2 CPU_OP_NAME(_d068)(uae_u32 opcode) /* ADD */
  282. {
  283.     uae_u32 srcreg = (opcode & 7);
  284.     uae_u32 dstreg = (opcode >> 9) & 7;
  285. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  286.     uae_s16 src = get_word(srca);
  287. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  288. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  289. {    int flgs = ((uae_s16)(src)) < 0;
  290.     int flgo = ((uae_s16)(dst)) < 0;
  291.     int flgn = ((uae_s16)(newv)) < 0;
  292.     ZFLG = ((uae_s16)(newv)) == 0;
  293.     VFLG = (flgs == flgo) && (flgn != flgo);
  294.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  295.     NFLG = flgn != 0;
  296.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  297. }}}}}}}
  298. void REGPARAM2 CPU_OP_NAME(_d070)(uae_u32 opcode) /* ADD */
  299. {
  300.     uae_u32 srcreg = (opcode & 7);
  301.     uae_u32 dstreg = (opcode >> 9) & 7;
  302. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  303. {    uae_s16 src = get_word(srca);
  304. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  305. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  306. {    int flgs = ((uae_s16)(src)) < 0;
  307.     int flgo = ((uae_s16)(dst)) < 0;
  308.     int flgn = ((uae_s16)(newv)) < 0;
  309.     ZFLG = ((uae_s16)(newv)) == 0;
  310.     VFLG = (flgs == flgo) && (flgn != flgo);
  311.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  312.     NFLG = flgn != 0;
  313.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  314. }}}}}}}}
  315. void REGPARAM2 CPU_OP_NAME(_d078)(uae_u32 opcode) /* ADD */
  316. {
  317.     uae_u32 dstreg = (opcode >> 9) & 7;
  318. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  319.     uae_s16 src = get_word(srca);
  320. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  321. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  322. {    int flgs = ((uae_s16)(src)) < 0;
  323.     int flgo = ((uae_s16)(dst)) < 0;
  324.     int flgn = ((uae_s16)(newv)) < 0;
  325.     ZFLG = ((uae_s16)(newv)) == 0;
  326.     VFLG = (flgs == flgo) && (flgn != flgo);
  327.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  328.     NFLG = flgn != 0;
  329.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  330. }}}}}}}
  331. void REGPARAM2 CPU_OP_NAME(_d079)(uae_u32 opcode) /* ADD */
  332. {
  333.     uae_u32 dstreg = (opcode >> 9) & 7;
  334. {{    uaecptr srca = nextilong();
  335.     uae_s16 src = get_word(srca);
  336. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  337. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  338. {    int flgs = ((uae_s16)(src)) < 0;
  339.     int flgo = ((uae_s16)(dst)) < 0;
  340.     int flgn = ((uae_s16)(newv)) < 0;
  341.     ZFLG = ((uae_s16)(newv)) == 0;
  342.     VFLG = (flgs == flgo) && (flgn != flgo);
  343.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  344.     NFLG = flgn != 0;
  345.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  346. }}}}}}}
  347. void REGPARAM2 CPU_OP_NAME(_d07a)(uae_u32 opcode) /* ADD */
  348. {
  349.     uae_u32 dstreg = (opcode >> 9) & 7;
  350. {{    uaecptr srca = m68k_getpc();
  351.     srca += (uae_s32)(uae_s16)nextiword();
  352. {    uae_s16 src = get_word(srca);
  353. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  354. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  355. {    int flgs = ((uae_s16)(src)) < 0;
  356.     int flgo = ((uae_s16)(dst)) < 0;
  357.     int flgn = ((uae_s16)(newv)) < 0;
  358.     ZFLG = ((uae_s16)(newv)) == 0;
  359.     VFLG = (flgs == flgo) && (flgn != flgo);
  360.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  361.     NFLG = flgn != 0;
  362.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  363. }}}}}}}}
  364. void REGPARAM2 CPU_OP_NAME(_d07b)(uae_u32 opcode) /* ADD */
  365. {
  366.     uae_u32 dstreg = (opcode >> 9) & 7;
  367. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  368. {    uae_s16 src = get_word(srca);
  369. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  370. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  371. {    int flgs = ((uae_s16)(src)) < 0;
  372.     int flgo = ((uae_s16)(dst)) < 0;
  373.     int flgn = ((uae_s16)(newv)) < 0;
  374.     ZFLG = ((uae_s16)(newv)) == 0;
  375.     VFLG = (flgs == flgo) && (flgn != flgo);
  376.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  377.     NFLG = flgn != 0;
  378.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  379. }}}}}}}}
  380. void REGPARAM2 CPU_OP_NAME(_d07c)(uae_u32 opcode) /* ADD */
  381. {
  382.     uae_u32 dstreg = (opcode >> 9) & 7;
  383. {{    uae_s16 src = nextiword();
  384. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  385. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  386. {    int flgs = ((uae_s16)(src)) < 0;
  387.     int flgo = ((uae_s16)(dst)) < 0;
  388.     int flgn = ((uae_s16)(newv)) < 0;
  389.     ZFLG = ((uae_s16)(newv)) == 0;
  390.     VFLG = (flgs == flgo) && (flgn != flgo);
  391.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  392.     NFLG = flgn != 0;
  393.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  394. }}}}}}}
  395. void REGPARAM2 CPU_OP_NAME(_d080)(uae_u32 opcode) /* ADD */
  396. {
  397.     uae_u32 srcreg = (opcode & 7);
  398.     uae_u32 dstreg = (opcode >> 9) & 7;
  399. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  400. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  401. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  402. {    int flgs = ((uae_s32)(src)) < 0;
  403.     int flgo = ((uae_s32)(dst)) < 0;
  404.     int flgn = ((uae_s32)(newv)) < 0;
  405.     ZFLG = ((uae_s32)(newv)) == 0;
  406.     VFLG = (flgs == flgo) && (flgn != flgo);
  407.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  408.     NFLG = flgn != 0;
  409.     m68k_dreg(regs, dstreg) = (newv);
  410. }}}}}}}
  411. void REGPARAM2 CPU_OP_NAME(_d088)(uae_u32 opcode) /* ADD */
  412. {
  413.     uae_u32 srcreg = (opcode & 7);
  414.     uae_u32 dstreg = (opcode >> 9) & 7;
  415. {{    uae_s32 src = m68k_areg(regs, srcreg);
  416. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  417. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  418. {    int flgs = ((uae_s32)(src)) < 0;
  419.     int flgo = ((uae_s32)(dst)) < 0;
  420.     int flgn = ((uae_s32)(newv)) < 0;
  421.     ZFLG = ((uae_s32)(newv)) == 0;
  422.     VFLG = (flgs == flgo) && (flgn != flgo);
  423.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  424.     NFLG = flgn != 0;
  425.     m68k_dreg(regs, dstreg) = (newv);
  426. }}}}}}}
  427. void REGPARAM2 CPU_OP_NAME(_d090)(uae_u32 opcode) /* ADD */
  428. {
  429.     uae_u32 srcreg = (opcode & 7);
  430.     uae_u32 dstreg = (opcode >> 9) & 7;
  431. {{    uaecptr srca = m68k_areg(regs, srcreg);
  432.     uae_s32 src = get_long(srca);
  433. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  434. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  435. {    int flgs = ((uae_s32)(src)) < 0;
  436.     int flgo = ((uae_s32)(dst)) < 0;
  437.     int flgn = ((uae_s32)(newv)) < 0;
  438.     ZFLG = ((uae_s32)(newv)) == 0;
  439.     VFLG = (flgs == flgo) && (flgn != flgo);
  440.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  441.     NFLG = flgn != 0;
  442.     m68k_dreg(regs, dstreg) = (newv);
  443. }}}}}}}
  444. void REGPARAM2 CPU_OP_NAME(_d098)(uae_u32 opcode) /* ADD */
  445. {
  446.     uae_u32 srcreg = (opcode & 7);
  447.     uae_u32 dstreg = (opcode >> 9) & 7;
  448. {{    uaecptr srca = m68k_areg(regs, srcreg);
  449.     uae_s32 src = get_long(srca);
  450. {    m68k_areg(regs, srcreg) += 4;
  451. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  452. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  453. {    int flgs = ((uae_s32)(src)) < 0;
  454.     int flgo = ((uae_s32)(dst)) < 0;
  455.     int flgn = ((uae_s32)(newv)) < 0;
  456.     ZFLG = ((uae_s32)(newv)) == 0;
  457.     VFLG = (flgs == flgo) && (flgn != flgo);
  458.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  459.     NFLG = flgn != 0;
  460.     m68k_dreg(regs, dstreg) = (newv);
  461. }}}}}}}}
  462. void REGPARAM2 CPU_OP_NAME(_d0a0)(uae_u32 opcode) /* ADD */
  463. {
  464.     uae_u32 srcreg = (opcode & 7);
  465.     uae_u32 dstreg = (opcode >> 9) & 7;
  466. {{    m68k_areg(regs, srcreg) -= 4;
  467. {    uaecptr srca = m68k_areg(regs, srcreg);
  468.     uae_s32 src = get_long(srca);
  469. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  470. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  471. {    int flgs = ((uae_s32)(src)) < 0;
  472.     int flgo = ((uae_s32)(dst)) < 0;
  473.     int flgn = ((uae_s32)(newv)) < 0;
  474.     ZFLG = ((uae_s32)(newv)) == 0;
  475.     VFLG = (flgs == flgo) && (flgn != flgo);
  476.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  477.     NFLG = flgn != 0;
  478.     m68k_dreg(regs, dstreg) = (newv);
  479. }}}}}}}}
  480. void REGPARAM2 CPU_OP_NAME(_d0a8)(uae_u32 opcode) /* ADD */
  481. {
  482.     uae_u32 srcreg = (opcode & 7);
  483.     uae_u32 dstreg = (opcode >> 9) & 7;
  484. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  485.     uae_s32 src = get_long(srca);
  486. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  487. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  488. {    int flgs = ((uae_s32)(src)) < 0;
  489.     int flgo = ((uae_s32)(dst)) < 0;
  490.     int flgn = ((uae_s32)(newv)) < 0;
  491.     ZFLG = ((uae_s32)(newv)) == 0;
  492.     VFLG = (flgs == flgo) && (flgn != flgo);
  493.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  494.     NFLG = flgn != 0;
  495.     m68k_dreg(regs, dstreg) = (newv);
  496. }}}}}}}
  497. void REGPARAM2 CPU_OP_NAME(_d0b0)(uae_u32 opcode) /* ADD */
  498. {
  499.     uae_u32 srcreg = (opcode & 7);
  500.     uae_u32 dstreg = (opcode >> 9) & 7;
  501. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  502. {    uae_s32 src = get_long(srca);
  503. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  504. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  505. {    int flgs = ((uae_s32)(src)) < 0;
  506.     int flgo = ((uae_s32)(dst)) < 0;
  507.     int flgn = ((uae_s32)(newv)) < 0;
  508.     ZFLG = ((uae_s32)(newv)) == 0;
  509.     VFLG = (flgs == flgo) && (flgn != flgo);
  510.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  511.     NFLG = flgn != 0;
  512.     m68k_dreg(regs, dstreg) = (newv);
  513. }}}}}}}}
  514. void REGPARAM2 CPU_OP_NAME(_d0b8)(uae_u32 opcode) /* ADD */
  515. {
  516.     uae_u32 dstreg = (opcode >> 9) & 7;
  517. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  518.     uae_s32 src = get_long(srca);
  519. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  520. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  521. {    int flgs = ((uae_s32)(src)) < 0;
  522.     int flgo = ((uae_s32)(dst)) < 0;
  523.     int flgn = ((uae_s32)(newv)) < 0;
  524.     ZFLG = ((uae_s32)(newv)) == 0;
  525.     VFLG = (flgs == flgo) && (flgn != flgo);
  526.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  527.     NFLG = flgn != 0;
  528.     m68k_dreg(regs, dstreg) = (newv);
  529. }}}}}}}
  530. void REGPARAM2 CPU_OP_NAME(_d0b9)(uae_u32 opcode) /* ADD */
  531. {
  532.     uae_u32 dstreg = (opcode >> 9) & 7;
  533. {{    uaecptr srca = nextilong();
  534.     uae_s32 src = get_long(srca);
  535. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  536. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  537. {    int flgs = ((uae_s32)(src)) < 0;
  538.     int flgo = ((uae_s32)(dst)) < 0;
  539.     int flgn = ((uae_s32)(newv)) < 0;
  540.     ZFLG = ((uae_s32)(newv)) == 0;
  541.     VFLG = (flgs == flgo) && (flgn != flgo);
  542.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  543.     NFLG = flgn != 0;
  544.     m68k_dreg(regs, dstreg) = (newv);
  545. }}}}}}}
  546. void REGPARAM2 CPU_OP_NAME(_d0ba)(uae_u32 opcode) /* ADD */
  547. {
  548.     uae_u32 dstreg = (opcode >> 9) & 7;
  549. {{    uaecptr srca = m68k_getpc();
  550.     srca += (uae_s32)(uae_s16)nextiword();
  551. {    uae_s32 src = get_long(srca);
  552. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  553. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  554. {    int flgs = ((uae_s32)(src)) < 0;
  555.     int flgo = ((uae_s32)(dst)) < 0;
  556.     int flgn = ((uae_s32)(newv)) < 0;
  557.     ZFLG = ((uae_s32)(newv)) == 0;
  558.     VFLG = (flgs == flgo) && (flgn != flgo);
  559.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  560.     NFLG = flgn != 0;
  561.     m68k_dreg(regs, dstreg) = (newv);
  562. }}}}}}}}
  563. void REGPARAM2 CPU_OP_NAME(_d0bb)(uae_u32 opcode) /* ADD */
  564. {
  565.     uae_u32 dstreg = (opcode >> 9) & 7;
  566. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  567. {    uae_s32 src = get_long(srca);
  568. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  569. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  570. {    int flgs = ((uae_s32)(src)) < 0;
  571.     int flgo = ((uae_s32)(dst)) < 0;
  572.     int flgn = ((uae_s32)(newv)) < 0;
  573.     ZFLG = ((uae_s32)(newv)) == 0;
  574.     VFLG = (flgs == flgo) && (flgn != flgo);
  575.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  576.     NFLG = flgn != 0;
  577.     m68k_dreg(regs, dstreg) = (newv);
  578. }}}}}}}}
  579. void REGPARAM2 CPU_OP_NAME(_d0bc)(uae_u32 opcode) /* ADD */
  580. {
  581.     uae_u32 dstreg = (opcode >> 9) & 7;
  582. {{    uae_s32 src = nextilong();
  583. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  584. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  585. {    int flgs = ((uae_s32)(src)) < 0;
  586.     int flgo = ((uae_s32)(dst)) < 0;
  587.     int flgn = ((uae_s32)(newv)) < 0;
  588.     ZFLG = ((uae_s32)(newv)) == 0;
  589.     VFLG = (flgs == flgo) && (flgn != flgo);
  590.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  591.     NFLG = flgn != 0;
  592.     m68k_dreg(regs, dstreg) = (newv);
  593. }}}}}}}
  594. void REGPARAM2 CPU_OP_NAME(_d0c0)(uae_u32 opcode) /* ADDA */
  595. {
  596.     uae_u32 srcreg = (opcode & 7);
  597.     uae_u32 dstreg = (opcode >> 9) & 7;
  598. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  599. {    uae_s32 dst = m68k_areg(regs, dstreg);
  600. {    uae_u32 newv = dst + src;
  601.     m68k_areg(regs, dstreg) = (newv);
  602. }}}}}
  603. void REGPARAM2 CPU_OP_NAME(_d0c8)(uae_u32 opcode) /* ADDA */
  604. {
  605.     uae_u32 srcreg = (opcode & 7);
  606.     uae_u32 dstreg = (opcode >> 9) & 7;
  607. {{    uae_s16 src = m68k_areg(regs, srcreg);
  608. {    uae_s32 dst = m68k_areg(regs, dstreg);
  609. {    uae_u32 newv = dst + src;
  610.     m68k_areg(regs, dstreg) = (newv);
  611. }}}}}
  612. void REGPARAM2 CPU_OP_NAME(_d0d0)(uae_u32 opcode) /* ADDA */
  613. {
  614.     uae_u32 srcreg = (opcode & 7);
  615.     uae_u32 dstreg = (opcode >> 9) & 7;
  616. {{    uaecptr srca = m68k_areg(regs, srcreg);
  617.     uae_s16 src = get_word(srca);
  618. {    uae_s32 dst = m68k_areg(regs, dstreg);
  619. {    uae_u32 newv = dst + src;
  620.     m68k_areg(regs, dstreg) = (newv);
  621. }}}}}
  622. void REGPARAM2 CPU_OP_NAME(_d0d8)(uae_u32 opcode) /* ADDA */
  623. {
  624.     uae_u32 srcreg = (opcode & 7);
  625.     uae_u32 dstreg = (opcode >> 9) & 7;
  626. {{    uaecptr srca = m68k_areg(regs, srcreg);
  627.     uae_s16 src = get_word(srca);
  628. {    m68k_areg(regs, srcreg) += 2;
  629. {    uae_s32 dst = m68k_areg(regs, dstreg);
  630. {    uae_u32 newv = dst + src;
  631.     m68k_areg(regs, dstreg) = (newv);
  632. }}}}}}
  633. void REGPARAM2 CPU_OP_NAME(_d0e0)(uae_u32 opcode) /* ADDA */
  634. {
  635.     uae_u32 srcreg = (opcode & 7);
  636.     uae_u32 dstreg = (opcode >> 9) & 7;
  637. {{    m68k_areg(regs, srcreg) -= 2;
  638. {    uaecptr srca = m68k_areg(regs, srcreg);
  639.     uae_s16 src = get_word(srca);
  640. {    uae_s32 dst = m68k_areg(regs, dstreg);
  641. {    uae_u32 newv = dst + src;
  642.     m68k_areg(regs, dstreg) = (newv);
  643. }}}}}}
  644. void REGPARAM2 CPU_OP_NAME(_d0e8)(uae_u32 opcode) /* ADDA */
  645. {
  646.     uae_u32 srcreg = (opcode & 7);
  647.     uae_u32 dstreg = (opcode >> 9) & 7;
  648. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  649.     uae_s16 src = get_word(srca);
  650. {    uae_s32 dst = m68k_areg(regs, dstreg);
  651. {    uae_u32 newv = dst + src;
  652.     m68k_areg(regs, dstreg) = (newv);
  653. }}}}}
  654. void REGPARAM2 CPU_OP_NAME(_d0f0)(uae_u32 opcode) /* ADDA */
  655. {
  656.     uae_u32 srcreg = (opcode & 7);
  657.     uae_u32 dstreg = (opcode >> 9) & 7;
  658. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  659. {    uae_s16 src = get_word(srca);
  660. {    uae_s32 dst = m68k_areg(regs, dstreg);
  661. {    uae_u32 newv = dst + src;
  662.     m68k_areg(regs, dstreg) = (newv);
  663. }}}}}}
  664. void REGPARAM2 CPU_OP_NAME(_d0f8)(uae_u32 opcode) /* ADDA */
  665. {
  666.     uae_u32 dstreg = (opcode >> 9) & 7;
  667. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  668.     uae_s16 src = get_word(srca);
  669. {    uae_s32 dst = m68k_areg(regs, dstreg);
  670. {    uae_u32 newv = dst + src;
  671.     m68k_areg(regs, dstreg) = (newv);
  672. }}}}}
  673. void REGPARAM2 CPU_OP_NAME(_d0f9)(uae_u32 opcode) /* ADDA */
  674. {
  675.     uae_u32 dstreg = (opcode >> 9) & 7;
  676. {{    uaecptr srca = nextilong();
  677.     uae_s16 src = get_word(srca);
  678. {    uae_s32 dst = m68k_areg(regs, dstreg);
  679. {    uae_u32 newv = dst + src;
  680.     m68k_areg(regs, dstreg) = (newv);
  681. }}}}}
  682. void REGPARAM2 CPU_OP_NAME(_d0fa)(uae_u32 opcode) /* ADDA */
  683. {
  684.     uae_u32 dstreg = (opcode >> 9) & 7;
  685. {{    uaecptr srca = m68k_getpc();
  686.     srca += (uae_s32)(uae_s16)nextiword();
  687. {    uae_s16 src = get_word(srca);
  688. {    uae_s32 dst = m68k_areg(regs, dstreg);
  689. {    uae_u32 newv = dst + src;
  690.     m68k_areg(regs, dstreg) = (newv);
  691. }}}}}}
  692. void REGPARAM2 CPU_OP_NAME(_d0fb)(uae_u32 opcode) /* ADDA */
  693. {
  694.     uae_u32 dstreg = (opcode >> 9) & 7;
  695. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  696. {    uae_s16 src = get_word(srca);
  697. {    uae_s32 dst = m68k_areg(regs, dstreg);
  698. {    uae_u32 newv = dst + src;
  699.     m68k_areg(regs, dstreg) = (newv);
  700. }}}}}}
  701. void REGPARAM2 CPU_OP_NAME(_d0fc)(uae_u32 opcode) /* ADDA */
  702. {
  703.     uae_u32 dstreg = (opcode >> 9) & 7;
  704. {{    uae_s16 src = nextiword();
  705. {    uae_s32 dst = m68k_areg(regs, dstreg);
  706. {    uae_u32 newv = dst + src;
  707.     m68k_areg(regs, dstreg) = (newv);
  708. }}}}}
  709. void REGPARAM2 CPU_OP_NAME(_d100)(uae_u32 opcode) /* ADDX */
  710. {
  711.     uae_u32 srcreg = (opcode & 7);
  712.     uae_u32 dstreg = (opcode >> 9) & 7;
  713. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  714. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  715. {    uae_u32 newv = dst + src + (XFLG ? 1 : 0);
  716. {    int flgs = ((uae_s8)(src)) < 0;
  717.     int flgo = ((uae_s8)(dst)) < 0;
  718.     int flgn = ((uae_s8)(newv)) < 0;
  719.     VFLG = (flgs && flgo && !flgn) || (!flgs && !flgo && flgn);
  720.     XFLG = CFLG = (flgs && flgo) || (!flgn && (flgo || flgs));
  721.     if (((uae_s8)(newv)) != 0) ZFLG = 0;
  722.     NFLG = ((uae_s8)(newv)) < 0;
  723.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  724. }}}}}}
  725. void REGPARAM2 CPU_OP_NAME(_d108)(uae_u32 opcode) /* ADDX */
  726. {
  727.     uae_u32 srcreg = (opcode & 7);
  728.     uae_u32 dstreg = (opcode >> 9) & 7;
  729. {{    m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
  730. {    uaecptr srca = m68k_areg(regs, srcreg);
  731.     uae_s8 src = get_byte(srca);
  732. {    m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
  733. {    uaecptr dsta = m68k_areg(regs, dstreg);
  734.     uae_s8 dst = get_byte(dsta);
  735. {    uae_u32 newv = dst + src + (XFLG ? 1 : 0);
  736. {    int flgs = ((uae_s8)(src)) < 0;
  737.     int flgo = ((uae_s8)(dst)) < 0;
  738.     int flgn = ((uae_s8)(newv)) < 0;
  739.     VFLG = (flgs && flgo && !flgn) || (!flgs && !flgo && flgn);
  740.     XFLG = CFLG = (flgs && flgo) || (!flgn && (flgo || flgs));
  741.     if (((uae_s8)(newv)) != 0) ZFLG = 0;
  742.     NFLG = ((uae_s8)(newv)) < 0;
  743.     put_byte(dsta,newv);
  744. }}}}}}}}
  745. void REGPARAM2 CPU_OP_NAME(_d110)(uae_u32 opcode) /* ADD */
  746. {
  747.     uae_u32 srcreg = ((opcode >> 9) & 7);
  748.     uae_u32 dstreg = opcode & 7;
  749. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  750. {    uaecptr dsta = m68k_areg(regs, dstreg);
  751.     uae_s8 dst = get_byte(dsta);
  752. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  753. {    int flgs = ((uae_s8)(src)) < 0;
  754.     int flgo = ((uae_s8)(dst)) < 0;
  755.     int flgn = ((uae_s8)(newv)) < 0;
  756.     ZFLG = ((uae_s8)(newv)) == 0;
  757.     VFLG = (flgs == flgo) && (flgn != flgo);
  758.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  759.     NFLG = flgn != 0;
  760.     put_byte(dsta,newv);
  761. }}}}}}}
  762. void REGPARAM2 CPU_OP_NAME(_d118)(uae_u32 opcode) /* ADD */
  763. {
  764.     uae_u32 srcreg = ((opcode >> 9) & 7);
  765.     uae_u32 dstreg = opcode & 7;
  766. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  767. {    uaecptr dsta = m68k_areg(regs, dstreg);
  768.     uae_s8 dst = get_byte(dsta);
  769. {    m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
  770. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  771. {    int flgs = ((uae_s8)(src)) < 0;
  772.     int flgo = ((uae_s8)(dst)) < 0;
  773.     int flgn = ((uae_s8)(newv)) < 0;
  774.     ZFLG = ((uae_s8)(newv)) == 0;
  775.     VFLG = (flgs == flgo) && (flgn != flgo);
  776.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  777.     NFLG = flgn != 0;
  778.     put_byte(dsta,newv);
  779. }}}}}}}}
  780. void REGPARAM2 CPU_OP_NAME(_d120)(uae_u32 opcode) /* ADD */
  781. {
  782.     uae_u32 srcreg = ((opcode >> 9) & 7);
  783.     uae_u32 dstreg = opcode & 7;
  784. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  785. {    m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
  786. {    uaecptr dsta = m68k_areg(regs, dstreg);
  787.     uae_s8 dst = get_byte(dsta);
  788. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  789. {    int flgs = ((uae_s8)(src)) < 0;
  790.     int flgo = ((uae_s8)(dst)) < 0;
  791.     int flgn = ((uae_s8)(newv)) < 0;
  792.     ZFLG = ((uae_s8)(newv)) == 0;
  793.     VFLG = (flgs == flgo) && (flgn != flgo);
  794.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  795.     NFLG = flgn != 0;
  796.     put_byte(dsta,newv);
  797. }}}}}}}}
  798. void REGPARAM2 CPU_OP_NAME(_d128)(uae_u32 opcode) /* ADD */
  799. {
  800.     uae_u32 srcreg = ((opcode >> 9) & 7);
  801.     uae_u32 dstreg = opcode & 7;
  802. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  803. {    uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)nextiword();
  804.     uae_s8 dst = get_byte(dsta);
  805. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  806. {    int flgs = ((uae_s8)(src)) < 0;
  807.     int flgo = ((uae_s8)(dst)) < 0;
  808.     int flgn = ((uae_s8)(newv)) < 0;
  809.     ZFLG = ((uae_s8)(newv)) == 0;
  810.     VFLG = (flgs == flgo) && (flgn != flgo);
  811.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  812.     NFLG = flgn != 0;
  813.     put_byte(dsta,newv);
  814. }}}}}}}
  815. void REGPARAM2 CPU_OP_NAME(_d130)(uae_u32 opcode) /* ADD */
  816. {
  817.     uae_u32 srcreg = ((opcode >> 9) & 7);
  818.     uae_u32 dstreg = opcode & 7;
  819. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  820. {    uaecptr dsta = get_disp_ea(m68k_areg(regs, dstreg));
  821. {    uae_s8 dst = get_byte(dsta);
  822. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  823. {    int flgs = ((uae_s8)(src)) < 0;
  824.     int flgo = ((uae_s8)(dst)) < 0;
  825.     int flgn = ((uae_s8)(newv)) < 0;
  826.     ZFLG = ((uae_s8)(newv)) == 0;
  827.     VFLG = (flgs == flgo) && (flgn != flgo);
  828.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  829.     NFLG = flgn != 0;
  830.     put_byte(dsta,newv);
  831. }}}}}}}}
  832. void REGPARAM2 CPU_OP_NAME(_d138)(uae_u32 opcode) /* ADD */
  833. {
  834.     uae_u32 srcreg = ((opcode >> 9) & 7);
  835. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  836. {    uaecptr dsta = (uae_s32)(uae_s16)nextiword();
  837.     uae_s8 dst = get_byte(dsta);
  838. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  839. {    int flgs = ((uae_s8)(src)) < 0;
  840.     int flgo = ((uae_s8)(dst)) < 0;
  841.     int flgn = ((uae_s8)(newv)) < 0;
  842.     ZFLG = ((uae_s8)(newv)) == 0;
  843.     VFLG = (flgs == flgo) && (flgn != flgo);
  844.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  845.     NFLG = flgn != 0;
  846.     put_byte(dsta,newv);
  847. }}}}}}}
  848. void REGPARAM2 CPU_OP_NAME(_d139)(uae_u32 opcode) /* ADD */
  849. {
  850.     uae_u32 srcreg = ((opcode >> 9) & 7);
  851. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  852. {    uaecptr dsta = nextilong();
  853.     uae_s8 dst = get_byte(dsta);
  854. {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
  855. {    int flgs = ((uae_s8)(src)) < 0;
  856.     int flgo = ((uae_s8)(dst)) < 0;
  857.     int flgn = ((uae_s8)(newv)) < 0;
  858.     ZFLG = ((uae_s8)(newv)) == 0;
  859.     VFLG = (flgs == flgo) && (flgn != flgo);
  860.     CFLG = XFLG = ((uae_u8)(~dst)) < ((uae_u8)(src));
  861.     NFLG = flgn != 0;
  862.     put_byte(dsta,newv);
  863. }}}}}}}
  864. void REGPARAM2 CPU_OP_NAME(_d140)(uae_u32 opcode) /* ADDX */
  865. {
  866.     uae_u32 srcreg = (opcode & 7);
  867.     uae_u32 dstreg = (opcode >> 9) & 7;
  868. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  869. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  870. {    uae_u32 newv = dst + src + (XFLG ? 1 : 0);
  871. {    int flgs = ((uae_s16)(src)) < 0;
  872.     int flgo = ((uae_s16)(dst)) < 0;
  873.     int flgn = ((uae_s16)(newv)) < 0;
  874.     VFLG = (flgs && flgo && !flgn) || (!flgs && !flgo && flgn);
  875.     XFLG = CFLG = (flgs && flgo) || (!flgn && (flgo || flgs));
  876.     if (((uae_s16)(newv)) != 0) ZFLG = 0;
  877.     NFLG = ((uae_s16)(newv)) < 0;
  878.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
  879. }}}}}}
  880. void REGPARAM2 CPU_OP_NAME(_d148)(uae_u32 opcode) /* ADDX */
  881. {
  882.     uae_u32 srcreg = (opcode & 7);
  883.     uae_u32 dstreg = (opcode >> 9) & 7;
  884. {{    m68k_areg(regs, srcreg) -= 2;
  885. {    uaecptr srca = m68k_areg(regs, srcreg);
  886.     uae_s16 src = get_word(srca);
  887. {    m68k_areg(regs, dstreg) -= 2;
  888. {    uaecptr dsta = m68k_areg(regs, dstreg);
  889.     uae_s16 dst = get_word(dsta);
  890. {    uae_u32 newv = dst + src + (XFLG ? 1 : 0);
  891. {    int flgs = ((uae_s16)(src)) < 0;
  892.     int flgo = ((uae_s16)(dst)) < 0;
  893.     int flgn = ((uae_s16)(newv)) < 0;
  894.     VFLG = (flgs && flgo && !flgn) || (!flgs && !flgo && flgn);
  895.     XFLG = CFLG = (flgs && flgo) || (!flgn && (flgo || flgs));
  896.     if (((uae_s16)(newv)) != 0) ZFLG = 0;
  897.     NFLG = ((uae_s16)(newv)) < 0;
  898.     put_word(dsta,newv);
  899. }}}}}}}}
  900. void REGPARAM2 CPU_OP_NAME(_d150)(uae_u32 opcode) /* ADD */
  901. {
  902.     uae_u32 srcreg = ((opcode >> 9) & 7);
  903.     uae_u32 dstreg = opcode & 7;
  904. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  905. {    uaecptr dsta = m68k_areg(regs, dstreg);
  906.     uae_s16 dst = get_word(dsta);
  907. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  908. {    int flgs = ((uae_s16)(src)) < 0;
  909.     int flgo = ((uae_s16)(dst)) < 0;
  910.     int flgn = ((uae_s16)(newv)) < 0;
  911.     ZFLG = ((uae_s16)(newv)) == 0;
  912.     VFLG = (flgs == flgo) && (flgn != flgo);
  913.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  914.     NFLG = flgn != 0;
  915.     put_word(dsta,newv);
  916. }}}}}}}
  917. void REGPARAM2 CPU_OP_NAME(_d158)(uae_u32 opcode) /* ADD */
  918. {
  919.     uae_u32 srcreg = ((opcode >> 9) & 7);
  920.     uae_u32 dstreg = opcode & 7;
  921. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  922. {    uaecptr dsta = m68k_areg(regs, dstreg);
  923.     uae_s16 dst = get_word(dsta);
  924. {    m68k_areg(regs, dstreg) += 2;
  925. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  926. {    int flgs = ((uae_s16)(src)) < 0;
  927.     int flgo = ((uae_s16)(dst)) < 0;
  928.     int flgn = ((uae_s16)(newv)) < 0;
  929.     ZFLG = ((uae_s16)(newv)) == 0;
  930.     VFLG = (flgs == flgo) && (flgn != flgo);
  931.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  932.     NFLG = flgn != 0;
  933.     put_word(dsta,newv);
  934. }}}}}}}}
  935. void REGPARAM2 CPU_OP_NAME(_d160)(uae_u32 opcode) /* ADD */
  936. {
  937.     uae_u32 srcreg = ((opcode >> 9) & 7);
  938.     uae_u32 dstreg = opcode & 7;
  939. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  940. {    m68k_areg(regs, dstreg) -= 2;
  941. {    uaecptr dsta = m68k_areg(regs, dstreg);
  942.     uae_s16 dst = get_word(dsta);
  943. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  944. {    int flgs = ((uae_s16)(src)) < 0;
  945.     int flgo = ((uae_s16)(dst)) < 0;
  946.     int flgn = ((uae_s16)(newv)) < 0;
  947.     ZFLG = ((uae_s16)(newv)) == 0;
  948.     VFLG = (flgs == flgo) && (flgn != flgo);
  949.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  950.     NFLG = flgn != 0;
  951.     put_word(dsta,newv);
  952. }}}}}}}}
  953. void REGPARAM2 CPU_OP_NAME(_d168)(uae_u32 opcode) /* ADD */
  954. {
  955.     uae_u32 srcreg = ((opcode >> 9) & 7);
  956.     uae_u32 dstreg = opcode & 7;
  957. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  958. {    uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)nextiword();
  959.     uae_s16 dst = get_word(dsta);
  960. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  961. {    int flgs = ((uae_s16)(src)) < 0;
  962.     int flgo = ((uae_s16)(dst)) < 0;
  963.     int flgn = ((uae_s16)(newv)) < 0;
  964.     ZFLG = ((uae_s16)(newv)) == 0;
  965.     VFLG = (flgs == flgo) && (flgn != flgo);
  966.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  967.     NFLG = flgn != 0;
  968.     put_word(dsta,newv);
  969. }}}}}}}
  970. void REGPARAM2 CPU_OP_NAME(_d170)(uae_u32 opcode) /* ADD */
  971. {
  972.     uae_u32 srcreg = ((opcode >> 9) & 7);
  973.     uae_u32 dstreg = opcode & 7;
  974. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  975. {    uaecptr dsta = get_disp_ea(m68k_areg(regs, dstreg));
  976. {    uae_s16 dst = get_word(dsta);
  977. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  978. {    int flgs = ((uae_s16)(src)) < 0;
  979.     int flgo = ((uae_s16)(dst)) < 0;
  980.     int flgn = ((uae_s16)(newv)) < 0;
  981.     ZFLG = ((uae_s16)(newv)) == 0;
  982.     VFLG = (flgs == flgo) && (flgn != flgo);
  983.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  984.     NFLG = flgn != 0;
  985.     put_word(dsta,newv);
  986. }}}}}}}}
  987. void REGPARAM2 CPU_OP_NAME(_d178)(uae_u32 opcode) /* ADD */
  988. {
  989.     uae_u32 srcreg = ((opcode >> 9) & 7);
  990. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  991. {    uaecptr dsta = (uae_s32)(uae_s16)nextiword();
  992.     uae_s16 dst = get_word(dsta);
  993. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  994. {    int flgs = ((uae_s16)(src)) < 0;
  995.     int flgo = ((uae_s16)(dst)) < 0;
  996.     int flgn = ((uae_s16)(newv)) < 0;
  997.     ZFLG = ((uae_s16)(newv)) == 0;
  998.     VFLG = (flgs == flgo) && (flgn != flgo);
  999.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  1000.     NFLG = flgn != 0;
  1001.     put_word(dsta,newv);
  1002. }}}}}}}
  1003. void REGPARAM2 CPU_OP_NAME(_d179)(uae_u32 opcode) /* ADD */
  1004. {
  1005.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1006. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  1007. {    uaecptr dsta = nextilong();
  1008.     uae_s16 dst = get_word(dsta);
  1009. {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
  1010. {    int flgs = ((uae_s16)(src)) < 0;
  1011.     int flgo = ((uae_s16)(dst)) < 0;
  1012.     int flgn = ((uae_s16)(newv)) < 0;
  1013.     ZFLG = ((uae_s16)(newv)) == 0;
  1014.     VFLG = (flgs == flgo) && (flgn != flgo);
  1015.     CFLG = XFLG = ((uae_u16)(~dst)) < ((uae_u16)(src));
  1016.     NFLG = flgn != 0;
  1017.     put_word(dsta,newv);
  1018. }}}}}}}
  1019. void REGPARAM2 CPU_OP_NAME(_d180)(uae_u32 opcode) /* ADDX */
  1020. {
  1021.     uae_u32 srcreg = (opcode & 7);
  1022.     uae_u32 dstreg = (opcode >> 9) & 7;
  1023. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1024. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  1025. {    uae_u32 newv = dst + src + (XFLG ? 1 : 0);
  1026. {    int flgs = ((uae_s32)(src)) < 0;
  1027.     int flgo = ((uae_s32)(dst)) < 0;
  1028.     int flgn = ((uae_s32)(newv)) < 0;
  1029.     VFLG = (flgs && flgo && !flgn) || (!flgs && !flgo && flgn);
  1030.     XFLG = CFLG = (flgs && flgo) || (!flgn && (flgo || flgs));
  1031.     if (((uae_s32)(newv)) != 0) ZFLG = 0;
  1032.     NFLG = ((uae_s32)(newv)) < 0;
  1033.     m68k_dreg(regs, dstreg) = (newv);
  1034. }}}}}}
  1035. void REGPARAM2 CPU_OP_NAME(_d188)(uae_u32 opcode) /* ADDX */
  1036. {
  1037.     uae_u32 srcreg = (opcode & 7);
  1038.     uae_u32 dstreg = (opcode >> 9) & 7;
  1039. {{    m68k_areg(regs, srcreg) -= 4;
  1040. {    uaecptr srca = m68k_areg(regs, srcreg);
  1041.     uae_s32 src = get_long(srca);
  1042. {    m68k_areg(regs, dstreg) -= 4;
  1043. {    uaecptr dsta = m68k_areg(regs, dstreg);
  1044.     uae_s32 dst = get_long(dsta);
  1045. {    uae_u32 newv = dst + src + (XFLG ? 1 : 0);
  1046. {    int flgs = ((uae_s32)(src)) < 0;
  1047.     int flgo = ((uae_s32)(dst)) < 0;
  1048.     int flgn = ((uae_s32)(newv)) < 0;
  1049.     VFLG = (flgs && flgo && !flgn) || (!flgs && !flgo && flgn);
  1050.     XFLG = CFLG = (flgs && flgo) || (!flgn && (flgo || flgs));
  1051.     if (((uae_s32)(newv)) != 0) ZFLG = 0;
  1052.     NFLG = ((uae_s32)(newv)) < 0;
  1053.     put_long(dsta,newv);
  1054. }}}}}}}}
  1055. void REGPARAM2 CPU_OP_NAME(_d190)(uae_u32 opcode) /* ADD */
  1056. {
  1057.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1058.     uae_u32 dstreg = opcode & 7;
  1059. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1060. {    uaecptr dsta = m68k_areg(regs, dstreg);
  1061.     uae_s32 dst = get_long(dsta);
  1062. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1063. {    int flgs = ((uae_s32)(src)) < 0;
  1064.     int flgo = ((uae_s32)(dst)) < 0;
  1065.     int flgn = ((uae_s32)(newv)) < 0;
  1066.     ZFLG = ((uae_s32)(newv)) == 0;
  1067.     VFLG = (flgs == flgo) && (flgn != flgo);
  1068.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1069.     NFLG = flgn != 0;
  1070.     put_long(dsta,newv);
  1071. }}}}}}}
  1072. void REGPARAM2 CPU_OP_NAME(_d198)(uae_u32 opcode) /* ADD */
  1073. {
  1074.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1075.     uae_u32 dstreg = opcode & 7;
  1076. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1077. {    uaecptr dsta = m68k_areg(regs, dstreg);
  1078.     uae_s32 dst = get_long(dsta);
  1079. {    m68k_areg(regs, dstreg) += 4;
  1080. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1081. {    int flgs = ((uae_s32)(src)) < 0;
  1082.     int flgo = ((uae_s32)(dst)) < 0;
  1083.     int flgn = ((uae_s32)(newv)) < 0;
  1084.     ZFLG = ((uae_s32)(newv)) == 0;
  1085.     VFLG = (flgs == flgo) && (flgn != flgo);
  1086.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1087.     NFLG = flgn != 0;
  1088.     put_long(dsta,newv);
  1089. }}}}}}}}
  1090. void REGPARAM2 CPU_OP_NAME(_d1a0)(uae_u32 opcode) /* ADD */
  1091. {
  1092.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1093.     uae_u32 dstreg = opcode & 7;
  1094. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1095. {    m68k_areg(regs, dstreg) -= 4;
  1096. {    uaecptr dsta = m68k_areg(regs, dstreg);
  1097.     uae_s32 dst = get_long(dsta);
  1098. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1099. {    int flgs = ((uae_s32)(src)) < 0;
  1100.     int flgo = ((uae_s32)(dst)) < 0;
  1101.     int flgn = ((uae_s32)(newv)) < 0;
  1102.     ZFLG = ((uae_s32)(newv)) == 0;
  1103.     VFLG = (flgs == flgo) && (flgn != flgo);
  1104.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1105.     NFLG = flgn != 0;
  1106.     put_long(dsta,newv);
  1107. }}}}}}}}
  1108. void REGPARAM2 CPU_OP_NAME(_d1a8)(uae_u32 opcode) /* ADD */
  1109. {
  1110.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1111.     uae_u32 dstreg = opcode & 7;
  1112. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1113. {    uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)nextiword();
  1114.     uae_s32 dst = get_long(dsta);
  1115. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1116. {    int flgs = ((uae_s32)(src)) < 0;
  1117.     int flgo = ((uae_s32)(dst)) < 0;
  1118.     int flgn = ((uae_s32)(newv)) < 0;
  1119.     ZFLG = ((uae_s32)(newv)) == 0;
  1120.     VFLG = (flgs == flgo) && (flgn != flgo);
  1121.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1122.     NFLG = flgn != 0;
  1123.     put_long(dsta,newv);
  1124. }}}}}}}
  1125. void REGPARAM2 CPU_OP_NAME(_d1b0)(uae_u32 opcode) /* ADD */
  1126. {
  1127.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1128.     uae_u32 dstreg = opcode & 7;
  1129. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1130. {    uaecptr dsta = get_disp_ea(m68k_areg(regs, dstreg));
  1131. {    uae_s32 dst = get_long(dsta);
  1132. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1133. {    int flgs = ((uae_s32)(src)) < 0;
  1134.     int flgo = ((uae_s32)(dst)) < 0;
  1135.     int flgn = ((uae_s32)(newv)) < 0;
  1136.     ZFLG = ((uae_s32)(newv)) == 0;
  1137.     VFLG = (flgs == flgo) && (flgn != flgo);
  1138.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1139.     NFLG = flgn != 0;
  1140.     put_long(dsta,newv);
  1141. }}}}}}}}
  1142. void REGPARAM2 CPU_OP_NAME(_d1b8)(uae_u32 opcode) /* ADD */
  1143. {
  1144.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1145. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1146. {    uaecptr dsta = (uae_s32)(uae_s16)nextiword();
  1147.     uae_s32 dst = get_long(dsta);
  1148. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1149. {    int flgs = ((uae_s32)(src)) < 0;
  1150.     int flgo = ((uae_s32)(dst)) < 0;
  1151.     int flgn = ((uae_s32)(newv)) < 0;
  1152.     ZFLG = ((uae_s32)(newv)) == 0;
  1153.     VFLG = (flgs == flgo) && (flgn != flgo);
  1154.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1155.     NFLG = flgn != 0;
  1156.     put_long(dsta,newv);
  1157. }}}}}}}
  1158. void REGPARAM2 CPU_OP_NAME(_d1b9)(uae_u32 opcode) /* ADD */
  1159. {
  1160.     uae_u32 srcreg = ((opcode >> 9) & 7);
  1161. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1162. {    uaecptr dsta = nextilong();
  1163.     uae_s32 dst = get_long(dsta);
  1164. {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
  1165. {    int flgs = ((uae_s32)(src)) < 0;
  1166.     int flgo = ((uae_s32)(dst)) < 0;
  1167.     int flgn = ((uae_s32)(newv)) < 0;
  1168.     ZFLG = ((uae_s32)(newv)) == 0;
  1169.     VFLG = (flgs == flgo) && (flgn != flgo);
  1170.     CFLG = XFLG = ((uae_u32)(~dst)) < ((uae_u32)(src));
  1171.     NFLG = flgn != 0;
  1172.     put_long(dsta,newv);
  1173. }}}}}}}
  1174. void REGPARAM2 CPU_OP_NAME(_d1c0)(uae_u32 opcode) /* ADDA */
  1175. {
  1176.     uae_u32 srcreg = (opcode & 7);
  1177.     uae_u32 dstreg = (opcode >> 9) & 7;
  1178. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  1179. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1180. {    uae_u32 newv = dst + src;
  1181.     m68k_areg(regs, dstreg) = (newv);
  1182. }}}}}
  1183. void REGPARAM2 CPU_OP_NAME(_d1c8)(uae_u32 opcode) /* ADDA */
  1184. {
  1185.     uae_u32 srcreg = (opcode & 7);
  1186.     uae_u32 dstreg = (opcode >> 9) & 7;
  1187. {{    uae_s32 src = m68k_areg(regs, srcreg);
  1188. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1189. {    uae_u32 newv = dst + src;
  1190.     m68k_areg(regs, dstreg) = (newv);
  1191. }}}}}
  1192. void REGPARAM2 CPU_OP_NAME(_d1d0)(uae_u32 opcode) /* ADDA */
  1193. {
  1194.     uae_u32 srcreg = (opcode & 7);
  1195.     uae_u32 dstreg = (opcode >> 9) & 7;
  1196. {{    uaecptr srca = m68k_areg(regs, srcreg);
  1197.     uae_s32 src = get_long(srca);
  1198. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1199. {    uae_u32 newv = dst + src;
  1200.     m68k_areg(regs, dstreg) = (newv);
  1201. }}}}}
  1202. void REGPARAM2 CPU_OP_NAME(_d1d8)(uae_u32 opcode) /* ADDA */
  1203. {
  1204.     uae_u32 srcreg = (opcode & 7);
  1205.     uae_u32 dstreg = (opcode >> 9) & 7;
  1206. {{    uaecptr srca = m68k_areg(regs, srcreg);
  1207.     uae_s32 src = get_long(srca);
  1208. {    m68k_areg(regs, srcreg) += 4;
  1209. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1210. {    uae_u32 newv = dst + src;
  1211.     m68k_areg(regs, dstreg) = (newv);
  1212. }}}}}}
  1213. void REGPARAM2 CPU_OP_NAME(_d1e0)(uae_u32 opcode) /* ADDA */
  1214. {
  1215.     uae_u32 srcreg = (opcode & 7);
  1216.     uae_u32 dstreg = (opcode >> 9) & 7;
  1217. {{    m68k_areg(regs, srcreg) -= 4;
  1218. {    uaecptr srca = m68k_areg(regs, srcreg);
  1219.     uae_s32 src = get_long(srca);
  1220. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1221. {    uae_u32 newv = dst + src;
  1222.     m68k_areg(regs, dstreg) = (newv);
  1223. }}}}}}
  1224. void REGPARAM2 CPU_OP_NAME(_d1e8)(uae_u32 opcode) /* ADDA */
  1225. {
  1226.     uae_u32 srcreg = (opcode & 7);
  1227.     uae_u32 dstreg = (opcode >> 9) & 7;
  1228. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  1229.     uae_s32 src = get_long(srca);
  1230. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1231. {    uae_u32 newv = dst + src;
  1232.     m68k_areg(regs, dstreg) = (newv);
  1233. }}}}}
  1234. void REGPARAM2 CPU_OP_NAME(_d1f0)(uae_u32 opcode) /* ADDA */
  1235. {
  1236.     uae_u32 srcreg = (opcode & 7);
  1237.     uae_u32 dstreg = (opcode >> 9) & 7;
  1238. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  1239. {    uae_s32 src = get_long(srca);
  1240. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1241. {    uae_u32 newv = dst + src;
  1242.     m68k_areg(regs, dstreg) = (newv);
  1243. }}}}}}
  1244. void REGPARAM2 CPU_OP_NAME(_d1f8)(uae_u32 opcode) /* ADDA */
  1245. {
  1246.     uae_u32 dstreg = (opcode >> 9) & 7;
  1247. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  1248.     uae_s32 src = get_long(srca);
  1249. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1250. {    uae_u32 newv = dst + src;
  1251.     m68k_areg(regs, dstreg) = (newv);
  1252. }}}}}
  1253. void REGPARAM2 CPU_OP_NAME(_d1f9)(uae_u32 opcode) /* ADDA */
  1254. {
  1255.     uae_u32 dstreg = (opcode >> 9) & 7;
  1256. {{    uaecptr srca = nextilong();
  1257.     uae_s32 src = get_long(srca);
  1258. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1259. {    uae_u32 newv = dst + src;
  1260.     m68k_areg(regs, dstreg) = (newv);
  1261. }}}}}
  1262. void REGPARAM2 CPU_OP_NAME(_d1fa)(uae_u32 opcode) /* ADDA */
  1263. {
  1264.     uae_u32 dstreg = (opcode >> 9) & 7;
  1265. {{    uaecptr srca = m68k_getpc();
  1266.     srca += (uae_s32)(uae_s16)nextiword();
  1267. {    uae_s32 src = get_long(srca);
  1268. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1269. {    uae_u32 newv = dst + src;
  1270.     m68k_areg(regs, dstreg) = (newv);
  1271. }}}}}}
  1272. void REGPARAM2 CPU_OP_NAME(_d1fb)(uae_u32 opcode) /* ADDA */
  1273. {
  1274.     uae_u32 dstreg = (opcode >> 9) & 7;
  1275. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  1276. {    uae_s32 src = get_long(srca);
  1277. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1278. {    uae_u32 newv = dst + src;
  1279.     m68k_areg(regs, dstreg) = (newv);
  1280. }}}}}}
  1281. void REGPARAM2 CPU_OP_NAME(_d1fc)(uae_u32 opcode) /* ADDA */
  1282. {
  1283.     uae_u32 dstreg = (opcode >> 9) & 7;
  1284. {{    uae_s32 src = nextilong();
  1285. {    uae_s32 dst = m68k_areg(regs, dstreg);
  1286. {    uae_u32 newv = dst + src;
  1287.     m68k_areg(regs, dstreg) = (newv);
  1288. }}}}}
  1289. #endif
  1290.